/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package servlets;

import controlador.DocumentoArchivadoJpaController;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import modelo.DocumentoArchivado;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

/**
 *
 * @author Mike
 */
public class agregarTesisAct extends HttpServlet {

    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        try {


            // Apache Commons-Fileupload library classes
            DiskFileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload sfu = new ServletFileUpload(factory);

            if (!ServletFileUpload.isMultipartContent(request)) {
                System.out.println("sorry. No file uploaded");
                return;
            }


            List items = sfu.parseRequest(request);

            ArrayList<FileItem> list = new ArrayList<FileItem>(items);

            String titulo = null;
            String facultad = null;
            String autor= null;
            String fecha = null;
            String tema= null;
            String director= null;
            String numpaginas= null;
            byte[] archivo= null;
                                         
            
            
            for (FileItem f : list) {
                switch (f.getFieldName()) {
                    
                    case "titulo":
                    {
                         titulo = f.getString();
                        break;
                    }
                        
                    case "facultad":
                    {
                         facultad = f.getString();
                         break;
                    }
                     case "autor":
                    {
                         autor = f.getString();
                         break;
                    }
                    case "fecha":
                    {
                         fecha = f.getString();
                         break;
                    }
                     case "tema":
                    {
                         tema = f.getString();
                         break;
                    }
                    case "director":
                    {
                         director = f.getString();
                         break;
                    }
                     case "numpaginas":
                    {
                         numpaginas = f.getString();
                         break;
                    }
                     case "documento":
                    {
                        archivo = f.get();
                         break;
                    }


                }
            }


            //formato hora
            String[] fechaformat = fecha.split("/");
            fecha = fechaformat[2] + "-" + fechaformat[0] + "-" + fechaformat[1];

            SimpleDateFormat formatoDelTexto = new SimpleDateFormat("yyyy-MM-dd");
            Date momento = formatoDelTexto.parse(fecha);


            DocumentoArchivadoJpaController docjpa = new DocumentoArchivadoJpaController();

            int numero = docjpa.getDocumentoArchivadoCount();
            numero+=1;

            DocumentoArchivado nuevatesis = new DocumentoArchivado(numero, 
            facultad, titulo, tema, autor,momento, numpaginas, archivo, director);

            docjpa.create(nuevatesis);


        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        } finally {
            
           
            response.sendRedirect("BusquedaTesis/Admin/listarTesis.jsp");
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP
     * <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP
     * <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
